package com.nkzy.controller;

import com.nkzy.pojo.Result;
import com.nkzy.utils.JwtUtil;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * 登录认证
 * 原因：在没登录的情况下，我们是可以访问文章列表，这是一个bug
 * 解决：
 * 回话技术：
 *1.会话：用户打开浏览器，访问web服务器的资源，会话建立，知道有一方断开 链接，会话结束。
 * 在一次会话请求中可以包含多次请求和响应。
 * 2.会话跟踪：一种维护浏览器状态的方法，服务器需要识别多次请求是否来自同上浏览器，以便在同一次会话的多次请求间共享
 * 数据。
 * 3.会话跟踪方案
 * （1）客户端会话跟踪技术：Cookie
 * （2）服务器端会话根中技术：Session（会话）
 * （3）令牌技术
 * Cookie会话技术：由服务器产生内容，浏览器收到请求后保存到本地；当浏览器再次访问时，浏览器会自动带上Cookie
 * 这样服务器就会通过Cookie的内容判断。
 * Session会话技术：底层也是基于Cookie的，采用的是在服务器端保持状态的方案。
 * 这两种会话技术最大的问题：当我们客户端禁用Cookie，所有的跟踪技术失败。
 *令牌技术 （JWT）：
 *全称：JSON Web Token：客户端和服务器端通过浏览器传递JSON对象的一种加密技术
 * 组成：第一部分，Header头部，算法
 * 第二部分：传递的内容（载荷）
 * 第三部分：密钥
 *令牌技术在编程中的使用
 * 步骤1：在POM文件添加依赖
 * 步骤2：编写使用JWT技术的工具类。写两个方法，一个是生成Token，另一个是解析
 * 步骤3：在我们的程序中使用JWT工具
 *
 */
@RestController
@RequestMapping("/article")
public class ArticleController {
    @GetMapping("/list")
    public Result list(){
        return Result.success("所有的文章列表");
    }
}














